/*
 * AnimationFabric.h
 *
 *  Created on: 05.01.2012
 *      Author: Kirill Blinov
 *      Copyright: LGPL
 */

#ifndef ANIMATIONFABRIC_H_
#define ANIMATIONFABRIC_H_

#include "../BasicTypes.h"
#include "CAnimationController.h"
#include <string>


using namespace std;

class AnimationFabric
{
private:
	AnimationFabric(){};
	~AnimationFabric(){};

	static std::vector< std::vector<CBasicAnimation*> > *AnimationsArray;
public:
	static UINT LoadAnimationFromFile( const std::string FileName );
	static bool IsAnimationExist( const std::string AnimationName );
	static bool RemoveAnimation( const std::string AnimationName );
	static void ClearAllAnimations();

	static CAnimationController* CreateAnimationController( UINT AnimationControllerID );
	static bool ReplaceAnimationInController( CAnimationController &Controller, std::string AnimationToReplace,
			                                  std::string NewAnimation );
};

#endif /* ANIMATIONFABRIC_H_ */
